#pragma once

#include "Vector3.h"
#include "Vector4.h"
#include "Matrix.h"

enum ObjectType
{
	MESH_OBJECT,

	MAX_OBJECT
};

class Object 
{
public:
	Object(void);
	virtual ~Object(void);

	virtual void Update( const float& dTime ) = 0;
	virtual void Render() = 0;

public:
	ObjectType GetType()	{ return m_type; }

public:
	void	SetPosition( const Vector3& vPos );
	void	GetPosition( Vector3& vPos );

	void	SetRotate( const Vector3& vRot );
	void	GetRotate( Vector3& vRot );

	void	SetSize( const Vector3& vSize );
	void	GetSize( Vector3& vSize );

protected:
	void	MakeMatrix();

protected:
	ObjectType m_type;

protected:
	Vector3	m_position;
	Vector3	m_rotate;
	Vector3 m_size;

	Matrix m_matrix;

protected:
	std::vector<Object> m_childObject;
};
